﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CrmContacto.Contracts.Contracts.Localization;
using Web.Framework.Translate;
using System.IO;
using CrmContacto.Services;

namespace CrmContacto.PtoVenta.Host
{
    public class LocalizationHelper
    {
        private static string CodigoLenguaje { get; set; }

        public static void InitializeLocalization(string codigoLenguaje)
        {
            CodigoLenguaje = codigoLenguaje;
            ReInitialize();
        }

        public static void ReInitialize()
        {
            string codigoLenguaje = CodigoLenguaje;
            LocalizationService localizationClient = new LocalizationService();
            Lenguaje lenguaje = localizationClient.ObtenerLenguajeById(codigoLenguaje);

            // Tengo que separar la parte de Javascript y la parte de aplicación
            Dictionary<string, string> termsForApp = new Dictionary<string, string>();
            Dictionary<string, string> termsForJs = new Dictionary<string, string>();

            foreach (PalabraClave pc in lenguaje.PalabraClaveList)
            {
                if (pc.EsJavascript)
                {
                    termsForJs.Add(pc.ClaveId, pc.Traduccion);
                }
                else
                {
                    termsForApp.Add(pc.ClaveId, pc.Traduccion);
                }
            }

            // Inicializo la aplicación
            LocalizationProvider.InitalizeInstance(termsForApp);


            // Genero el archivo Javascript
            //string path = HttpContext.Current.Server.MapPath("/Scripts/Localization");
            //path = Path.Combine(path, string.Format("Localization.{0}.js", codigoLenguaje));

            //if (File.Exists(path))
            //{
            //    File.Delete(path);
            //}

            //using (StreamWriter sw = new StreamWriter(File.Create(path)))
            //{
            //    foreach (var key in termsForJs.Keys)
            //    {
            //        sw.WriteLine("var {0} = '{1}';", key, termsForJs[key]);
            //    }

            //    sw.Close();
            //}
        }
    }
}